home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
utils
/
tosfixes
/
fser096b.lzh
/
FSER096B
/
READ.ME
< prev
next >
Wrap
Text File
|
1993-08-08
|
14KB
|
356 lines
Fast_Ser
========
Fast_Ser ist ein erweiterter Treiber für serielle Schnittstellen
auf dem STE/TT/Falcon030.
Für Modem/Serial 1 (MFP) ist eine erweiterte Rsconf-Auskunftsfunktion
implementiert. Für Modem/Serial 2 (SCC) sind zusätzlich alle Bco...-
und Interrupt-Routinen neu (und hoffentlich fehlerfrei) implementiert,
und die Baudratentabelle ist mit eigenen Werten programmierbar.
Fast_Ser stellt eine Standardschnittstelle zur jeweiligen
Hardware mit Hilfe der Rsconf-Funtion her.
- Cookie 'FSER', zeigt auf Struktur FSER_INFO:
typedef struct
{
UWORD version;
unsigned unused:15;
unsigned baud_table_flag:1; /* bit 0 in einem word */
BASPAG *mem_blk;
} FSER_INFO;
- Rsconf( -3, -2, xx, xx, xx, xx ) liefert 'FSER' als long
- Rsconf( -3, -3, xx, xx, xx, xx ) liefert einen Pointer auf die
Struktur CHAN_INFO, die wie folgt definiert ist:
typedef struct
{
BAUD_INFO *baud_table;
BAUD_INFO *alt_baud_table;
UBYTE **chip_address;
UWORD chip_type;
unsigned flags:14;
unsigned extrd_flag:1; /* bit 1 in einem word */
unsigned irq_flag:1; /* bit 0 in einem word */
WORD task;
WORD resv[3];
ULONG dcd_on;
ULONG dcd_off;
UWORD rxbuffer_overflows;
UWORD framing_errs;
UWORD parity_errs;
UWORD charlost_errs;
} CHAN_INFO;
typedef struct
{
LONG baudrate;
UWORD SCC_BRG_value;
UWORD SCC_MISC_value; /* bit 15..14 Clock mode (Reg. 4)
bit 9..8 BRG mode (Reg. 14)
bit 6..3 Rx/Tx Clock Source (Reg. 11)
*/
} BAUD_INFO;
baud_table: Zeiger auf die Tabelle mit den Baudrateninfos, in der
eine Null bei 'baudrate' das Ende markiert, -1 steht
für eine nicht verfügbare Baudrate (nur bei den
ersten 16 Standardeinträgen!!),
-2 für einen freien Eintrag
alt_baud_table: wie baud_table, nur sind hier an den Indices
0 und 1 höhere Baudraten eingefügt. Dadurch können
auch Programme, die Fast_Ser nicht direkt unter-
stützen, die höheren Baudraten nutzen
chip_address: Hardwareadresse des Chips bzw. der internen
Peripherie bei 68302, etc
z.b $FFFF8C81 für Serial 2 auf MSTE/TT
chip_type: Welcher Chiptyp hängt an diesem Kanal dran?
$00: MFP
$10: Standard-SCC 8530
$11: VLSI-SCC VL85C30
$12: Zilog-SCC Z85C30
$13: AMD-ESCC Am85C30
$14: Zilog-ESCC Z85230
$15: AMD-ESCC Am85C230A
$20: ISDN-Coprozessor MC68302
$30: Ethernet-Coprozessor MC68EN360
flags: verschiedene bislang unbenutzte Flags
extrd_flag: Beim SCC ist in WR7' das ExtendedRead-Flag gesetzt.
irq_flag: gesetzt: Die Interruptroutinen nutzen die SCC-FIFOS.
task: hier trägt eine Task, die die Schnittstellenhardware für
sich haben will, ihre Nummer ein.
-1 steht für nicht reserviert.
dcd_on: letzter hz_200-Zeitpunkt, an dem DCD aktiv wurde
dcd_off: letzter hz_200-Zeitpunkt, an dem DCD inaktiv wurde
rxbuffer_overflows: Anzahl der Charakter, die bei einem vollem
Empfangsbuffer verlorengingen
framing_errs: Anzahl der empfangenen Charakter mit Framing-Fehler
(SCC-bedingt ein unsicherer Wert)
parity_errs: Anzahl der empfangenen Charakter mit Parity-Fehler
charlost_errs: Anzahl der Charakter, die verlorengingen, weil der
SCC nicht schnell genug abgefragt wurde
(tatsächliche Anzahl kann größer sein!)
Bei den Standard-Clockraten für den SCC unterstützt Fast_Ser momentan
folgende Baudratenliste (auf die alt_baud_table zeigt):
Listen für den MSTE/Falcon030
Kompatibilität im FSERIAL.CPX =AN:
Index: Modem 2: Serial 2: Original:
0: 57600 57600 19200
1: 38400 38400 9600
2: 19200 19200 4800
3: 9600 9600 3600
4: 4800 4800 2400
5: 3600 3600 2000
6: 2400 2400 1800
7: 2000 2000 1200
8: 1800 1800 600
9: 1200 1200 300
10: 600 600 200
11: 300 300 150
12: 200 200 134
13: 150 150 110
14: 134 134 75
15: 110 110 50
16: 75 75
17: 50 50
18: 38400 38400
19: 57600 57600
20: 76800 115200
21: 153600
Kompatibilität im FSERIAL.CPX =AUS:
Index: Modem 2: Serial 2: Original:
0: 19200 19200 19200
1: 9600 9600 9600
2: 4800 4800 4800
3: 3600 3600 3600
4: 2400 2400 2400
5: 2000 2000 2000
6: 1800 1800 1800
7: 1200 1200 1200
8: 600 600 600
9: 300 300 300
10: 200 200 200
11: 150 150 150
12: 134 134 134
13: 110 110 110
14: 75 75 75
15: 50 50 50
16: 38400 38400
17: 57600 57600
18: 76800 115200
19: 153600
Liste für den TT:
Kompatibilität im FSERIAL.CPX =AN:
Index: Modem 2: Serial 2: Original:
0: 38400 57600 19200
1: 76800 38400 9600
2: 19200 19200 4800
3: 9600 9600 3600
4: 4800 4800 2400
5: 3600 3600 2000
6: 2400 2400 1800
7: 2000 2000 1200
8: 1800 1800 600
9: 1200 1200 300
10: 600 600 200
11: 300 300 150
12: 200 200 134
13: 150 150 110
14: 134 134 75
15: 110 110 50
16: 75 75
17: 50 50
18: 38400 38400
19: 76800 57600
20: 153600 115200
Kompatibilität im FSERIAL.CPX =AUS:
Index: Modem 2: Serial 2: Original:
0: 19200 19200 19200
1: 9600 9600 9600
2: 4800 4800 4800
3: 3600 3600 3600
4: 2400 2400 2400
5: 2000 2000 2000
6: 1800 1800 1800
7: 1200 1200 1200
8: 600 600 600
9: 300 300 300
10: 200 200 200
11: 150 150 150
12: 134 134 134
13: 110 110 110
14: 75 75 75
15: 50 50 50
16: 38400 38400
17: 76800 57600
18: 153600 115200
Bei einem Terminalprogramm (z.B. RUFUS) bedeutet das, daß man
um eine Baudrate von 57600 auf Serial 2 zu erreichen, 19200 Baud
auswählen muß (im Kompatibilitäts-Modus). Allerdings liegen die
hohen Baudraten